
"""
Seccion donde se administra el logueo de usuarios
"""
import transaction
from sqlalchemy.exc import IntegrityError
from pyramid.response import Response
from pyramid.renderers import render
import json
from pyramid.httpexceptions import HTTPFound
from pyramid.security import authenticated_userid, remember, forget
from alpha.modelos.models import Usuario
from alpha.modelos import DBSession
from datetime import datetime
from datetime import date

"""
Vista login, valida la autenticacion de los usuarios e inicia sesion
"""

def login(request): 
	
    return dict()


def ingresar(request):
	session = DBSession()
	post_data = request.POST
	if 'submit' in post_data:
		login = post_data['login']
		password = post_data['password']
		if Usuario.check_password(login, password):
			headers = remember(request, login)
			usuario= session.query(Usuario).filter_by(nombreUsuario= login).first()
			usuario.setUltimaSesion(datetime)
			session.add(usuario)
			return HTTPFound(location = request.route_url('main'), headers = headers)
		output = json.dumps({'success': False})
	return Response(output)

"""
Vista logout, cierra la sesion y redirije a la vista main
"""  
def logout(request):
	session = DBSession()
	en_linea= authenticated_userid(request)
	usuario= session.query(Usuario).filter_by(nombreUsuario= en_linea).first()
	if usuario != None:
		usuario.setUltimaSesionFinalizada(datetime)
		session.add(usuario)
	request.session.invalidate()
	headers = forget(request)
	return HTTPFound(location = request.route_url('main'), headers = headers)

